#!/bin/bash

# 处理一个文件,分别按省份来导出要求的大小
# yzhaozilong第一版本

array_name=(安徽 北京 福建 甘肃 广东 广西 贵州 海南 河北 河南 黑龙江 湖北 湖南 吉林 江苏 江西 辽宁 内蒙古 宁夏 青海 山东 山西 陕西 上海 四川 天津 西藏 云南 浙江 重庆 新疆 )

E_WRONGARGS=65

LINES=800000

DIR=./result

if [ ! -f "$1" ]
then
    echo "File $1 not found!"
    exit $E_WRONGARGS
fi

if [ ! -d "$DIR" ]
then 
   mkdir "$DIR"   
fi

case "$2" in 
""       ) lines=${LINES};;
*[!0-9]* ) echo "Usage:`basename $0` file-to-exp";exit $E_WRONGARGS;;
*        ) lines=$2;;
esac

#echo ${array_name[@]:0}

for((i=0;i<${#array_name[@]};i=i+1))
do
   # echo "省份$i: ${array_name[$i]}"
   sed 's/\"//g' $1 | sed '/MSISDN/d'|\
   grep "${array_name[$i]}"|\
   awk 'BEGIN {FS=","}{print $1 "\t" $2 "\t" $3}' > /tmp/${array_name[$i]}.txt 

   linenum=`wc -l /tmp/${array_name[$i]}.txt | awk '{print $1}'`

   num=1
   numreslut=$linenum
   filenum=1
   while [ $num -le $linenum ]
   do
     if [ $numreslut -lt $lines ]
     then
        num2=$(($num+$numreslut-1))
     else
       num2=$(($num+$lines-1))
     fi

     if [ $linenum -le $lines ]
     then
       string=""
     else
       string="-$filenum"
     fi  

     sed -n "${num},${num2}p" /tmp/${array_name[$i]}.txt > ./result/${array_name[$i]}--$(($num2-$num+1))$string.txt
     num=$(($num2+1))
     numreslut=$(($numreslut-$lines))
     filenum=$(($filenum+1))
     #echo "num $num,num2 $num2,numreslut $numreslut"
   done
   rm /tmp/${array_name[$i]}.txt
done
